
import math

def load(list):
    print "Loading AI bindings"

    # binding format:
    # ( 'name of robot from .bot file', 'name of AI from script class',
    #       {'optional constructor parameter':value, 'another':value} )

    # constructor parameters:
    # nose - "front" of bot in radians (default 0)
    # invertible - can function upside-down (default False)
    # topspeed - speed in meters/second AI will attempt not to exceed (default 4.0)
    # throttle - maximum analog value AI will attempt not to exceed (default 100)
    # turnspeed - turning in radians/second AI will attempt not to exceed (default 2.5)
    # turn - maximum analog value AI will attempt not to exceed (default 60)
    # radius - bot radius to use for checking for hazards and walls (default 1.0)

    # 0 - Red Zone "Do NOT enter the Red Zone!"
    list.append(("Scout","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4)}))
    list.append(("ALARM","Omni",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10)}))
    list.append(("Sentinel","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9)}))

    # 1 - PREHISTORIC "Bad and bloodthirsty."
    list.append(("Roly Poly","Rammer",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11)}))
    list.append(("Sabretooth","Omni",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14)}))
    list.append(("Grog The Warrior","Omni",{'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5)}))
    
    # 2- The Good ol' Boys "Don't need nothin' but my truck, my shotgun, and my bot."
    list.append(("Catfish","Rammer",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8)}))
    list.append(("Mud Runner","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6)}))
    list.append(("BEAR","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)}))
    
    # 3 - Team Dragon "If you defeat us, we will sneak in at night and steal your chickens."
    list.append(("Ninja","Omni",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8)}))
    list.append(("Bushido","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5)}))
    list.append(("Ronin","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8)}))
    
    # 4 - BLACK STORM "Beware, BLACK STORM!"
    list.append(("Bot-204","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4)}))
    list.append(("Devil","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4)}))
    list.append(("Coal Miner","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)}))
       
    # 5 - Team SPARK "Fast and furious."
    list.append(("JACKPOT!","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2)}))
    list.append(("Boxer","Omni",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10)}))
    list.append(("EMERGENCY","Omni",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)}))
    
    # 6 - SpikeHeads "I'd like you to meet my little metal friend..."
    list.append(("M.A.D.","Omni",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6)}))
    list.append(("Dementia","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12)}))
    list.append(("Little Metal Friend","Omni",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10)}))
    
    # 7 - North Polers "Chilling defeat will gnaw your bones."
    list.append(("MiniBerg","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3)}))
    list.append(("Iceberg","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4)}))
    list.append(("Snow Job","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28)}))
    
    # 8 - HIGH VOLTAGE "Here, hold this wire for a second..."
    list.append(("Flapjack","Omni",{'invertible':False,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3)}))
    list.append(("Backslash","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4)}))
    list.append(("WIDE LOAD","Omni",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30)}))
    
    # 9 - Team HEX "We eat nuts and bolts for breakfast."
    list.append(("Flame Chopper","Pillar",{'invertible':False,'nose':math.pi*2,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12)}))
    list.append(("LugNut","Pillar",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12)}))
    list.append(("Hanky Panky","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8)}))
    
    # 10 - Team Z "Cooler than you."
    list.append(("Berserker","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9)}))
    list.append(("Razor","Rammer",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)}))
    list.append(("Eye Poker","Rammer",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)}))
    
    # 11 - SteelYard Dog "Our Bite is MUCH worse than our bark!"
    list.append(("Lil Dog","Rammer",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6)}))
    list.append(("Da Dog","Rammer",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)}))
    list.append(("Big Dog","OmniRam",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)}))
    
    # 12 - RIOT "Things are going to get LOUD!"
    list.append(("Civil Disobedience","Omni",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6)}))
    list.append(("REVENGE","OmniRam",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14)}))
    list.append(("Raptor","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)}))
    
    # 13 - MEGATON "Boom."
    list.append(("Stinger","Omni",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4)}))
    list.append(("Tornado","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)}))
    list.append(("DEADBEAT","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6)}))
    
    # 14 - The Scrappers "We are scrap parts specialists."
    list.append(("Arc Pounder","Pillar",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8)}))
    list.append(("Ripblade","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8)}))
    list.append(("Backyard Ripper","Omni",{'invertible':False,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)}))
